package com.erp.erp_servers.Ftp;

import com.erp.utils.UploadFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * @ClassName IFtpService
 * @Description ftp服务接口
 * @Author songjizhen
 * @Date 2020-07-04 22:56
 * @Version 1.0
 */
public interface IFtpService {
    /**
     * 上传文件
     * @param request
     * @param fileType 文件业务属性（即文件是在哪个业务模块中的，用于组装在文件服务器上的路径）
     * @param ftppath ftp路径
     * @return
     */
    List<UploadFile> upload(MultipartHttpServletRequest request, String fileType,String ftppath) throws IOException;
    /**
     * 上传文件
     * @param path 文件业务属性（即文件是在哪个业务模块中的，用于组装在文件服务器上的路径）
     * @return
     */
    void ftpUpload(String path) throws IOException;
    /** * 下载文件 *
     * @param pathname FTP服务器文件目录 *
     * @param filename 文件名称 *
     * @param localpath 下载后的文件路径 *
     * @return */
    boolean downloadFile(String pathname, String filename, String localpath);

    /**
     * 图片输入到页面，用于展示
     * @param path
     * @param fileName
     * @return
     */
    void download(String path, String fileName, HttpServletResponse response) throws IOException, Exception;
    /**
     * 上传邮件附件
     * @param pathname 存储相对路径
     * @param fileName 附件名字
     * @param inputStream 附件的流
     * @return 最终路径名
     */
    String uploadEmailAdjunct(String pathname,String fileName,InputStream inputStream) throws IOException;
    /**
     * 获取ftp文件的File
     * * @param pathname 存储相对路径
     * * @param fileName 附件名字
     * @return
     */
    File downLoadFile(String pathname, String fileName);

}
